//1.CommonTableView 使用方法

import SFFundation
import ObjectMapper

class CommonTableViewTemplate: UIViewController {
    
    //在Xib中设置Class为CommonTableView即可使用
    @IBOutlet weak var tableView: CommonTableView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        initData()
        
    }
    
    func initData(){
        
        var config = CommonTableViewConfig()
        
        //设置要请求的URL
        config.fetchRequest = {(pageNum) in
            let param = ["page_num":"\(pageNum)", "page_size":"\(10)"]
            return Router.HomePage(param)
        }
        
        //如果有缓存，在此返回缓存数据
        config.preloadCachedData = {
            return nil
        }
        
        //请求到数据后，使用数据前可以进行过滤等操作在使用
        config.beforeUseResult = {[weak self](page:Int, data:Array<CommonModel>) in
            return data
        }
        //scrollViewDidScroll回调
        config.didScroll = {[weak self] scrollView in
        
        }
        //请求成功
        config.requestSuccess = {
            
        }
        //请求失败
        config.requestFail = {
            
        }
        
        //点击事件Callback， 如果需要禁止默认跳转返回true 否则返回false
        config.didSelectRowAtIndexPath = {index in
            
            if(index.row == 2){
                //根据给定indexpath跳转
                self.tableView.forwardByIndexPath(index)
                return true
            }
            return false
        }
        
        tableView.loadConfig(config: config)
    }
}
